Fix 'xm create' and 'xm start' when SEDF scheduler is used.
authorkfraser@localhost.localdomain <kfraser@localhost.localdomain>
Mon, 29 Jan 2007 10:55:20 +0000 (10:55 +0000)
committerkfraser@localhost.localdomain <kfraser@localhost.localdomain>
Mon, 29 Jan 2007 10:55:20 +0000 (10:55 +0000)
If the Xen is running with the sedf scheduler, the following functions
do not call the domain_sched_credit_set().
 - domain_create()
 - domain_create_from_dict()
 - domain_start()

Signed-off-by: Masaki Kanno <kanno.masaki@jp.fujitsu.com>
tools/python/xen/xend/XendDomain.py

index d8a23197dafce573f4e33ff038722d7f9fe71ed9..303a615ad8d353f872940a483e2bf48d22addd56 100644 (file)
@@ -32,7 +32,7 @@ import threading
 import xen.lowlevel.xc
 
 
-from xen.xend import XendOptions, XendCheckpoint, XendDomainInfo
+from xen.xend import XendOptions, XendCheckpoint, XendDomainInfo, XendNode
 from xen.xend.PrettyPrint import prettyprint
 from xen.xend.XendConfig import XendConfig
 from xen.xend.XendError import XendError, XendInvalidDomain, VmError
@@ -868,9 +868,10 @@ class XendDomain:
             self._refresh()
 
             dominfo = XendDomainInfo.create(config)
-            self.domain_sched_credit_set(dominfo.getDomid(),
-                                         dominfo.getWeight(),
-                                         dominfo.getCap())
+            if XendNode.instance().xenschedinfo() == 'credit':
+                self.domain_sched_credit_set(dominfo.getDomid(),
+                                             dominfo.getWeight(),
+                                             dominfo.getCap())
             return dominfo
         finally:
             self.domains_lock.release()
@@ -887,9 +888,10 @@ class XendDomain:
             self._refresh()
 
             dominfo = XendDomainInfo.create_from_dict(config_dict)
-            self.domain_sched_credit_set(dominfo.getDomid(),
-                                         dominfo.getWeight(),
-                                         dominfo.getCap())
+            if XendNode.instance().xenschedinfo() == 'credit':
+                self.domain_sched_credit_set(dominfo.getDomid(),
+                                             dominfo.getWeight(),
+                                             dominfo.getCap())
             return dominfo
         finally:
             self.domains_lock.release()
@@ -943,9 +945,10 @@ class XendDomain:
                                  POWER_STATE_NAMES[dominfo.state])
             
             dominfo.start(is_managed = True)
-            self.domain_sched_credit_set(dominfo.getDomid(),
-                                         dominfo.getWeight(),
-                                         dominfo.getCap())
+            if XendNode.instance().xenschedinfo() == 'credit':
+                self.domain_sched_credit_set(dominfo.getDomid(),
+                                             dominfo.getWeight(),
+                                             dominfo.getCap())
         finally:
             self.domains_lock.release()
         dominfo.waitForDevices()